package com.lmf.eduservice.client;

import com.lmf.eduservice.client.impl.VodClientImpl;
import com.lmf.resultCode.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;
/**
 * @FeignClient:表明当前接口是一个被包装的远程客户端，可以从nacos注册中心调用远程服务，作为当前接口的实现类
 *      fallback:回调函数，一般用于熔断机制。当调用某个方法失败时，就会去该指定类里面寻找相应方法执行返回给前端
 */
@Component  //将这个接口交给spring管理
@FeignClient(value = "service-vod",fallback = VodClientImpl.class)
public interface VodClient {

    //下面就是要从远程服务模块中具体调用的方法，需要和原方法写的一样
    @DeleteMapping("/edu_vod/video/deleteVideoById/{videoId}")
    R deleteVideoById(@PathVariable("videoId") String videoId);

    @DeleteMapping("/edu_vod/video/delete-batch")
    R deleteBatchVideo(@RequestParam("videoIdList") List<String> videoIdList);
}
